A database management system (DBMS) can be configured to manage large databases and provide an operational environment in which stored information can be retrieved or updated. In one type of DBMS, which can be referred to as a relational database system, information can be stored in tables where each table can have one or more columns and one or more rows. Each column in a table can be referred to as an attribute of the table, and each row in a table can be referred to as a record. One known example of a relational database management system is a DB2 database system.
When transactions are processed in a DB2 database system (i.e., when there is an insert, update or delete operation made to a record), a subsystem of the DB2 database system can be configured to create log records and write them to log files (also can be referred to as a DB2 Log). Once written, the log records can be used for various purposes, such as data recovery, migration, and reporting. The log records can include control information (e.g., log record sequence number, transaction identifier connecting the log record to other log records for the same transaction, etc.) and different types of content that depend on the objective of the log. For example, a log record can include data from the first changed byte to the last changed byte or the end of the row of an update.
In some DB2 database systems (e.g., DB2 version 10) logging can be selectively performed on certain objects within the DB2 database systems. For example, logging of complete after images of large object (LOBs) in an auxiliary table within some known DB2 database systems may be performed after certain types of operations such as inserts and updates have been executed, but logging of complete prior images before execution of deletes and updates of the LOBs will not be performed. Such LOBs, where only current images or after images of the LOBs are logged (for inserts and updates, but not for deletes), can be referred to as partially logged LOBs, or as selectively logged LOBs, because prior images of the LOBs are not logged. Accordingly, certain operations such as undo operations may not be readily performed for partially logged LOBs. Operations for partially logged LOBs may be limited to, for example, migration and reporting type output only within a DB2 database system.
The internal structure of the DB2 environment, and in particular, the internal structure of auxiliary tables that store LOB data can render known completion methods (e.g., typical row completion methods) inefficient or inoperable. Differences between auxiliary tables storing LOBs and regular tables that may render known completion methods inefficient or inoperable include multiple pages and/or log records representing a single LOB versus a single DB2 row for a regular table, the lack of details for prior images of LOBs, partial image copies including only part of the data representing a full LOB. Also, the difficulties associated with processing partially logged LOBs may be exacerbated by the fact that, for example, SHRLEVEL CHANGE image copies may not include all of the pages that represent a multipage LOB, and/or by the movement of text strings that may be used to generate data description language (DDL) from, for example, typical VARCHAR columns in base tables to auxiliary tables for, for example, TRIGGERs, VIEWs, FUNCTIONS, MQTs, and so forth, in some known DB2 database systems. Thus, a need exists for systems, methods, and apparatus to address the shortfalls of present technology and to provide other new and innovative features.